/**---------------工具函数---------------------- */

function random(start, end) {
  return end ? Math.floor(Math.random() * (end - start)) + start : Math.floor(Math.random() * start)
}

// 创建dom元素函数, tag为标签名, options为属性键值对
function createDOM(tag, options, text = "") {
  const element = document.createElement(tag)
  element.innerText = text
  const keys = Object.keys(options)
  keys.forEach(key => {
    element[key] = options[key]
  })
  return element
}

// 向指定容器添加元素，selector为指定容器的选择器，element为需要添加的元素
function addDOM(selector, element) {
  const container = document.querySelector(selector)
  container.appendChild(element)
}

// 修改文本节点的文本信息，selector为文本节点的选择器，text更新文本
function patchTextNode(selector, text) {
  const textNode = document.querySelector(selector)
  textNode.innerText = text
}

// 获取节点文本信息，selector为文本节点的选择器
function getTextNode(selector) {
  const textNode = document.querySelector(selector)
  return textNode.innerText
}

// 根据概率获取五种卡片分布
function getChanceResult(c1, c2, c3, c4, c5) {
  const res = []
  const chanceArr = [
    ...new Array(Math.floor(c1 * 100)).fill(1),
    ...new Array(c2 * 100).fill(2),
    ...new Array(c3 * 100).fill(3),
    ...new Array(c4 * 100).fill(4),
    ...new Array(c5 * 100).fill(5)
  ]
  for (let i = 0; i < 5; i++) {
    res.push(chanceArr[random(100)])
  }
  return res
}

// 弹出一个对话框
// 进行防抖处理
let timer = null
function createDialog(text) {
  if (timer) return
  const dialogEl = createDOM("div", { className: "dialog" }, text)
  document.body.appendChild(dialogEl)
  timer = setTimeout(() => {
    document.body.removeChild(dialogEl)
    timer = null
  }, 2000)
}